import request from "@/utils/request";

const BASE_URL = "/api/v1/banners";

const bannerApi = {
  getPage(data?: PageQuery) {
    return request<any, PageResult<SysBannerVO[]>>({
      url: `${BASE_URL}/page`,
      method: "post",
      data,
    });
  },
  getById(id?: string) {
    return request<any, PageResult<SysBannerVO[]>>({
      url: `${BASE_URL}/${id}/form`,
      method: "get",
    });
  },
  add(data: SysBannerForm) {
    return request({
      url: `${BASE_URL}/add`,
      method: "post",
      data,
    });
  },
  delete(ids: string) {
    return request({
      url: `${BASE_URL}/delete/${ids}`,
      method: "delete",
    });
  },
  update(id: number, data: SysBannerForm) {
    return request({
      url: `${BASE_URL}/edit/${id}`,
      method: "put",
      data,
    });
  },
};

export default bannerApi;
export interface BannerPageQuery extends PageQuery {
  title: string;
}

/**
 * 轮播图对象
 */
export interface SysBannerVO {
  /** 主键 ID */
  id: number;

  /** 标题 */
  title: string;

  /** 图片 */
  imageUrl: string;

  /** 跳转 URL */
  linkUrl: string;

  /** 状态（1 - 启用，2 - 停用） */
  status: number;

  /** 排序 */
  sort: number;

  /** 创建者 */
  createBy: string;

  /** 创建时间（ISO 日期时间格式） */
  createTime: string;

  /** 更新者 */
  updateBy: string;

  /** 更新时间（ISO 日期时间格式） */
  updateTime: string;

  /** 备注 */
  remark: string;
}

/**
 * 轮播图表单对象
 */
export interface SysBannerForm {
  /** 主键 ID */
  id: number;

  /** 标题 */
  title?: string;

  /** 图片 */
  imageUrl: string;

  /** 跳转 URL */
  linkUrl: string;

  /** 状态（1 - 启用，2 - 停用） */
  status: number;

  /** 排序 */
  sort: number;

  /** 创建者 */
  createBy?: string;

  /** 创建时间（ISO 日期时间格式） */
  createTime?: string;

  /** 更新者 */
  updateBy?: string;

  /** 更新时间（ISO 日期时间格式） */
  updateTime?: string;

  /** 备注 */
  remark?: string;
}
